home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / gopher / Unix / GopherTools / tstb / tsc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-14  |  1.6 KB  |  100 lines

  1. /* tsc.c, BOONE, 09/11/92
  2.    C version of ts
  3.    Copyright (C) 1992, Trustees of Michigan State University */
  4.  
  5. /* Modifications:
  6.    09/11/92 Boone      Initial coding
  7.    End Modifications */
  8.  
  9. /* Version 1.2 */
  10.  
  11. #include <stdio.h>
  12. #include <strings.h>
  13.  
  14. #define MAXSTR       256
  15. #define INDEXFL      ".ts/.tsdata"
  16.  
  17. void chop(char *line)
  18.  
  19. {
  20.     line[strlen(line)-1] = '\0';
  21. }
  22.  
  23. char *stristr(char *one, char *two)
  24.  
  25. {
  26.     int i;
  27.     char lone[MAXSTR];
  28.     char ltwo[MAXSTR];
  29.  
  30.     for (i = 0; i <= strlen(one); i++)
  31.         lone[i] = toupper(one[i]);
  32.     for (i = 0; i <= strlen(two); i++)
  33.         ltwo[i] = toupper(two[i]);
  34.  
  35.     if (strstr(lone, ltwo) != NULL)
  36.         return one;
  37.     else
  38.         return NULL;
  39. }
  40.  
  41. int main (int argc, char *argv[])
  42.  
  43. {
  44.     char line[MAXSTR+1];
  45.     char *cp1, *cp2;
  46.     FILE *fd;
  47.     char searchwords[16][MAXSTR+1];
  48.     short numwords;
  49.     int i, j, k;
  50.     char charwas;
  51.  
  52.     numwords = 0;
  53.     for (i = 1; i < argc; i++)
  54.     {
  55.         cp2 = searchwords[numwords];
  56.         for (cp1 = argv[i]; *cp1; cp1++)
  57.         {
  58.             if (*cp1 != ' ')
  59.                 *cp2++ = *cp1;
  60.             else
  61.             {
  62.                 *cp2 = '\0';
  63.                 numwords++;
  64.                 cp2 = searchwords[numwords];
  65.             }
  66.         }
  67.         *cp2 = '\0';
  68.         numwords++;
  69.     }
  70.     if ((fd = fopen(INDEXFL, "r")) == NULL)
  71.     {
  72.         fprintf(stderr, "Can't open file\n");
  73.         exit(1);
  74.     }
  75.     fgets(line, MAXSTR, fd);
  76.     chop(line);
  77.     while (! feof(fd))
  78.     {
  79.         if ((cp1 = strchr(line, '\t')) != NULL)
  80.         {
  81.             charwas = *cp1;
  82.             *cp1 = '\0';
  83.         }
  84.         for (i = 0; i < numwords; i++)
  85.         {
  86.             if ((cp2 = stristr(line, searchwords[i])) != NULL)
  87.             {
  88.                 *cp1 = charwas;
  89.                 fputs(line, stdout);
  90.                 fputs("\r\n", stdout);
  91.                 break;
  92.             }
  93.         }
  94.         fgets(line, MAXSTR, fd);
  95.         chop(line);
  96.     }
  97.     fclose(fd);
  98.     fputs(".\r\n", stdout);
  99. }
  100.